<?php
class Trabalho_Model extends Model
{
	private $cod_trabalho;
	private $titulo;
	private $abstract;
	private $resumo;
	private $palavras_chave;
	private $arquivo;
	private $data_cadastro;
	private $sqlInsert = "INSERT INTO trabalho(titulo,abstract,resumo,palavras_chave,arquivo,data_cadastro)
						 VALUES ('%s','%s','%s','%s','%s','%s')";
	private $sqlDelete = "DELETE FROM trabalho WHERE cod_trabalho='%s'";
	private $sqlUpdate = "UPDATE trabalho SET titulo='%s',abstract='%s',resumo='%s',palavras_chave='%s',
						 arquivo='%s', data_cadastro='%s' WHERE cod_trabalho='%s'";
	private $sqlSelect = "SELECT *,date_format(data_cadastro,'%s') as data_cadastro FROM trabalho WHERE 1=1 %s %s";
	
	public function setCodTrabalho($codigo)
	{
		$this->cod_trabalho = trim(strip_tags(mysql_real_escape_string($codigo)));	
	}
	
	public function setTitulo($titulo)
	{
		$this->titulo = trim(strip_tags(mysql_real_escape_string($titulo)));	
	}
	
	public function setAbstract($abstract)
	{
		$this->abstract = trim(strip_tags(mysql_real_escape_string($abstract)));	
	}
	
	public function setResumo($resumo)
	{
		$this->resumo = trim(strip_tags(mysql_real_escape_string($resumo)));	
	}
	
	public function setPalavrasChave($palavras_chave)
	{
		$this->palavras_chave = trim(strip_tags(mysql_real_escape_string($palavras_chave)));	
	}
	
	public function setArquivo($arquivo)
	{
		//$this->arquivo = trim(strip_tags(mysql_real_escape_string($arquivo)));	
		//lista de tipos de arquivos permitidos
		$tipoPermitidos = array('image/gif','image/jpeg','image/png');
		//tamanho máximo do arquivo
		$tamanho = 1024*500; //500Kb
		$arquivo = array(
					'name'=>$_FILES['arquivo']['name'],
					'type'=>$_FILES['arquivo']['type'],
					'size'=>$_FILES['arquivo']['size'],
					'temp'=>$_FILES['arquivo']['tmp_name'],
					'error'=>$_FILES['arquivo']['error']
		);
		if($arquivo['error'] == 0)
		{
			//verifica o tipo de arquivo enviado
			if(array_search($arquivo['type'],$tipoPermitidos)===false)
			{
				//retorna erro se o arquivo não for imagem
				return false;
			} elseif($arquivo['size'] > $tamanho) {
				//retorna erro se o arquivo for maior que 500 Kb
				return false;
			} else {
				$pasta = PUBLIC_DIR.'arquivo'.DS;
				//renomeando o arquivo
				//pega a extensão do arquivo enviado
				$extensao = strtolower(end(explode('.',$arquivo['name'])));
				//define o novo nome do arquivo
				$nome = 'img'.time().'.'.$extensao;
				//move o arquivo da pasta temporária para a pasta public/img
				//$upload = move_uploaded_file($arquivo['temp'],$pasta.$arquivo['name']);
				$upload = move_uploaded_file($arquivo['temp'],$pasta.$nome);
				$this->arquivo = $nome;
			}
		}
	}
	
	public function setDataCadastro($data)
	{
		$this->data_cadastro = trim(strip_tags(mysql_real_escape_string($data)));	
	}
	
	public function getCodTrabalho()
	{
		return $this->cod_trabalho;	
	}
	
	public function getTitulo()
	{
		return $this->titulo;	
	}
	
	public function getAbstract()
	{
		return $this->abstract;	
	}
	
	public function getResumo()
	{
		return $this->resumo;	
	}
	
	public function getPalavrasChave()
	{
		return $this->palavras_chave;	
	}
	
	public function getArquivo()
	{
		return $this->arquivo;	
	}
	
	public function getDataCadastro($us=false)
	{
		if($us==false){
			return $this->data_cadastro;	
		} else {
			return Common::dateTimeToUS($this->data_cadastro);
		}
	}
	
	public function insert()
	{
		$sql = sprintf($this->sqlInsert,$this->getTitulo(),$this->getAbstract(),$this->getResumo(),
			   $this->getPalavrasChave(),$this->getArquivo(),$this->getDataCadastro(true));   
		return $this->runQuery($sql);	   	
	}
	
	public function delete()
	{
		$sql = sprintf($this->sqlDelete,$this->getCodTrabalho());
		return $this->runQuery($sql);	   	
	}
	
	public function update()
	{
		$sql = sprintf($this->sqlUpdate,$this->getTitulo(),$this->getAbstract(),$this->getResumo(),
			   $this->getPalavrasChave(),$this->getArquivo(),$this->getDataCadastro(true),$this->getCodTrabalho());
		return $this->runQuery($sql);	   	
	}
	
	public function select($where='',$order='')
	{
		$sql = sprintf($this->sqlSelect,'%d/%m/%Y %H:%i:%s',$where,$order);
		return $this->runSelect($sql);	   	
	}
	
	public function load()
	{
		$where = sprintf("AND cod_trabalho='%s'",$this->getCodTrabalho());
		$row = $this->select($where);	
		$this->setCodTrabalho($row[0]['cod_trabalho']);
		$this->setTitulo($row[0]['titulo']);
		$this->setAbstract($row[0]['abstract']);
		$this->setResumo($row[0]['resumo']);
		$this->setPalavrasChave($row[0]['palavras_chave']);
		$this->setArquivo($row[0]['arquivo']);
		$this->setDataCadastro($row[0]['data_cadastro']);
		return $this;
	}
}
?>